home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / sbin / scandisks < prev    next >
Text File  |  2006-03-30  |  2KB  |  89 lines

  1. #!/bin/sh
  2. # Scripts that read /proc/partitions and attempt to generate fstab accordingly...
  3. # Copyright Michael Zanetta grimmlin@pentoo.ch
  4.  
  5. ###################################
  6. # Warning !!! Ugly code ahead !!! #
  7. ###################################
  8.  
  9. SWAP=1
  10.  
  11. CMDLINE=`cat /proc/cmdline`
  12. # Scan CMDLINE for noswap parameter
  13. for x in ${CMDLINE}
  14. do
  15.         case "${x}" in
  16.                 noswap)
  17.                         SWAP=0
  18.                 ;;
  19.         nodisk)
  20.             exit 1
  21.         ;;
  22.         esac
  23. done
  24.  
  25.  
  26. PART_I=`cat /proc/partitions | grep -o "hd[a-z]..\?"`
  27. PART_S=`cat /proc/partitions | grep -o "sd[a-z]..\?"`
  28.  
  29. detect() {
  30.     TYPE=`disktype /dev/$1 | egrep -o "(ReiserFS|Ext.|swap|NTFS|FAT)"`
  31. }
  32.  
  33. for x in ${PART_I}
  34. do
  35.     detect ${x}
  36.     case $TYPE in
  37.         *[Rr][Ee][Ii][Ss][Ee][Rr]*)
  38.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="reiserfs" OPTS="noauto";;
  39.         *[Ee][Xx][Tt]3*)
  40.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="ext3" OPTS="noauto";;
  41.         *[Ee][Xx][Tt]2*)
  42.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="ext2" OPTS="noauto";;
  43.         *[Ff][Aa][Tt]*)
  44.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="vfat" OPTS="noauto";;
  45.         *[Nn][Tt][Ff][Ss]*)
  46.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="ntfs" OPTS="ro,noauto";;
  47.         swap*)
  48.             if [ $SWAP -eq 1 ]; then
  49.                 swapon /dev/$x
  50.             fi
  51.             DEVICE="" MOUNTPOINT="" FSTYPE="" OPTS="";;
  52.         *)
  53.             DEVICE="" MOUNTPOINT="" FSTYPE="" OPTS="";;
  54.     esac
  55.     if [ ! -z ${FSTYPE} ]; then 
  56.         mkdir /mnt/$x
  57.         echo "$DEVICE $MOUNTPOINT $FSTYPE $OPTS" >> /etc/fstab
  58.     fi
  59. done
  60.  
  61. for x in ${PART_S}
  62. do
  63.     detect ${x}
  64.     case $TYPE in
  65.         *[Rr][Ee][Ii][Ss][Ee][Rr]*)
  66.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="reiserfs" OPTS="noauto";;
  67.         *[Ee][Xx][Tt]3*)
  68.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="ext3" OPTS="noauto";;
  69.         *[Ee][Xx][Tt]2*)
  70.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="ext2" OPTS="noauto";;
  71.         *[Ff][Aa][Tt]*)
  72.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="vfat" OPTS="noauto";;
  73.         *[Nn][Tt][Ff][Ss]*)
  74.             DEVICE="/dev/$x" MOUNTPOINT="/mnt/$x" FSTYPE="ntfs" OPTS="ro,noauto";;
  75.         swap*)
  76.             if [ $SWAP -eq 1 ]; then
  77.                 swapon /dev/$x
  78.             fi
  79.             DEVICE="" MOUNTPOINT="" FSTYPE="" OPTS="";;
  80.         *)
  81.             DEVICE="" MOUNTPOINT="" FSTYPE="" OPTS="";;
  82.     esac
  83.     if [ ! -z ${FSTYPE} ]; then 
  84.         mkdir /mnt/$x
  85.         echo "$DEVICE $MOUNTPOINT $FSTYPE $OPTS" >> /etc/fstab
  86.     fi
  87. done
  88.  
  89.